import {constantRoutes,sidebarRouter} from '@/router'
const state={
    routes:constantRoutes
}
const mutations={
     // newRoutes可以认为是 用户登录 通过权限所得到的动态路由的部分
    setRoutes(state,newRoutes){
        state.routes=[...constantRoutes,...newRoutes]
    }
}
const actions={
    /*
    menus是传来的参数
    menus= ["settings", "social_securitys", "permissions", "approvals", "departments", "salarys", "employees",…]
    sidebarRouter是动态路由，自己的动态路由里的name和menus里面的标识比较，如果等于的话，说明有权限，可以访问
    sidebarRouter的结构 [{},{},{}]
    */
    filterRoutes(context,menus){
        const routes=[]
        menus.forEach(key => {
          routes.push(...sidebarRouter.filter(item=>item.name==key))  //可能得到数组，也可能得到的是空数组
        });
        context.commit('setRoutes',routes) //改变mutation的setRoutes的值
        return routes //这里为什么还要return state数据是用来显示左侧菜单用的 return 是给路由addRoutes用的 
        // 将结果返回出去，然后我们在src/permission.js调用dispatch filterRoutes时才可以拿到这个结果
    }
}
export default {
    namespaced:true,
    state,
    mutations,
    actions
}